table of contents
ld.so(8) | ld.so(8) |
NAZWA¶
ld.so/ld-linux.so - dynamiczny konsolidator/ładowacz
OPIS¶
ld.so ładuje biblioteki dzielone wymagane przez program, przygotowuje program do uruchomienia i uruchamia go.
O ile podczas kompilacji nie podano jawnie opcji -static, wszystkie binaria linuksowe będą niekompletne i będą wymagały dalszego konsolidowania podczas działania.
Potrzebne biblioteki dzielone są szukane w następującej kolejności:
- o
- Przy użyciu zmiennej środowiskowej LD_LIBRARY_PATH (LD_AOUT_LIBRARY_PATH dla programów a.out). Poza binariami suid/sgid, dla których jest to ignorowane.
- o
- Z pliku buforowego /etc/ld.so.cache który zawiera skompilowaną listę kandydatów, znalezionych w ścieżce bibliotek.
- o
- W domyślnym katalogu /usr/lib, a potem w /lib.
ŚRODOWISKO¶
- LD_LIBRARY_PATH
- Oddzielona dwukropkami lista katalogów, w których szukać bibliotek ELF podczas wykonywania. Podobne do zmiennej środowiskowej PATH.
- LD_PRELOAD
- Oddzielona spacjami lista dodatkowych, podanych przez użytkownika bibliotek dzielonych ELF, którą należy załadować przed wszystkimi innmi. Umożliwia to wybiórczą zamianę funkcji w innych bibliotekach dzielonych. Dla plików binarnych ELF z ustawionym bitem setuid/setgid, ładowane będą tylko biblioteki ze standardowych katalogów, mające także ustawiony bit setgid.
- LD_TRACE_LOADED_OBJECTS
- Gdy zmienna ta jest obecna, sprawia, że program wypisze swoje zależności od bibliotek dynamicznych, tak jakby był uruchomiany przez ldd, a nie normalnie.
- LD_BIND_NOW
- Gdy zmienna ta jest obecna, sprawia, że dynamiczny konsolidator rozwiąże wszystkie symbole podczas startu programu, a nie wtedy gdy będzie do nich pierwsze odniesienie.
- LD_AOUT_LIBRARY_PATH
- Oddzielona dwukropkami lista katalogów, w których szukać bibliotek a.out podczas wykonywania. Podobne do zmiennej środowiskowej PATH.
- LD_AOUT_PRELOAD
- Nazwa dodatkowej, podanej przez użytkownika biblioteki dzielonej a.out, którą należy załadować po wszystkich innych. Może to być uzywane do przeciążania funkcji innych bibliotek dzielonych.
- LD_NOWARN
- Powstrzymaj ostrzeżenia o bibliotekach a.out o niekompatybilnych numerach minorowych wersji.
- LD_KEEPDIR
- Nie ignoruj katalogu w nazwach ładowanych bibliotek a.out. Używanie tej opcji nie jest zalecane.
PLIKI¶
- /lib/ld.so
- Dynamiczny konsolidator/ładowacz a.out
- /lib/ld-linux.so.*
- Dynamiczny konsolidator/ładowacz ELF
- /etc/ld.so.cache
- Plik zawierający skompilowaną listę katalogów, w których należy szukać bibliotek oraz uporządkowaną listę bibliotek kandydujących.
- /etc/ld.so.preload
- Plik zawierający oddzieloną spacjami listę bibliotek dzielonych ELF, które mają być załadowane przed programem.
- lib*.so*
- Biblioteki dzielone
ZOBACZ TAKŻE¶
BŁĘDY¶
Obecnie, ld.so nie ma narzędzi do usuwania i szukania kompatybilnych lub nowszych wersji bibliotek.
Możliwości ld.so dostępne są tylko dla binariów, skompilowanych przy użyciu libc w wersji 4.4.3 lub wyższej.
AUTORZY¶
David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus Torvalds, Lars Wirzenius i Mitch D'Souza (niekoniecznie w tej kolejności).
14 Marca 1998 |